home *** CD-ROM | disk | FTP | other *** search
/ SunSoft Catalyst CDWARE 1996 May to August / Catalyst CDWARE 1996 May to August.iso / .products / .bin / httpd / Solaris_x86 / test-cgi.tcl < prev    next >
Text File  |  1995-05-18  |  1KB  |  55 lines

  1. #!/usr/local/bin/tclsh
  2. # tcl-cgi.tcl
  3. # robert.bagwill@nist.gov, no warranty, no rights reserved
  4. # print out command line args, stdin, and environment variables
  5. #
  6. # some fixes by dl@hplyot.obspm.fr - v1.1 - Apr 11 1995
  7. #
  8. set envvars {SERVER_SOFTWARE SERVER_NAME GATEWAY_INTERFACE SERVER_PROTOCOL SERVER_PORT REQUEST_METHOD PATH_INFO PATH_TRANSLATED SCRIPT_NAME QUERY_STRING REMOTE_HOST REMOTE_ADDR REMOTE_USER AUTH_TYPE CONTENT_TYPE CONTENT_LENGTH HTTP_ACCEPT HTTP_REFERER HTTP_USER_AGENT}
  9.  
  10. puts "Content-type: text/html\n"
  11. puts "<HTML>"
  12. puts "<HEAD>"
  13. puts "<TITLE>CGI/1.1 TCL script report:</TITLE>"
  14. puts "</HEAD>"
  15.  
  16. puts "<BODY>"
  17. puts "<H1>Command Line Arguments</H1>"
  18. puts "argc is $argc. argv is $argv."
  19. puts ""
  20.  
  21. puts "<H1>Message</H1>"
  22. puts "<PRE>"
  23. if {[string compare $env(REQUEST_METHOD) "POST"]==0} {
  24. set message [split [read stdin $env(CONTENT_LENGTH)] &]
  25. } else {
  26. set message [split $env(QUERY_STRING) &]
  27. }
  28. foreach pair $message {
  29.     set name [lindex [split $pair =] 0]
  30.     set val [lindex [split $pair =] 1]
  31.     regsub -all {\+} $val { } val
  32.     # kludge to unescape some chars
  33.     regsub -all {\%0A} $val \n\t val
  34.     regsub -all {\%2C} $val {,} val
  35.     regsub -all {\%27} $val {'} val
  36.     puts "$name\t= $val"
  37. }
  38. puts "</PRE>"
  39.  
  40. puts "<H1>Environment Variables</H1>"
  41. puts "<DL>"
  42. foreach var $envvars {
  43.     if {[info exists env($var)]} {
  44.         puts "<DT>$var<DD>$env($var)"
  45.         }
  46.     }
  47. }
  48. puts "</DL>"
  49. puts "</BODY>"
  50. puts "</HTML>"
  51. ######################
  52. # end of tcl-cgi.tcl
  53. ######################
  54.  
  55.